home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 002 / pc_pad.arc / TELLTIME.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-05-13  |  2.9 KB  |  127 lines

  1. 200  '  ***SETUP***
  2. 210  '
  3. 220  DEFINT A-Z:DEFSNG P
  4. 230  KEY OFF:SCREEN 1,0,0,0:COLOR 0,1
  5. 240  PI=3.14159
  6. 250  RANDOMIZE VAL(MID$(TIME$,7))
  7. 260  '
  8. 270  '  *** RANDOMLY SELECTS TIME TO DRAW ***
  9. 280  '
  10. 290  HR=RND*12 MOD 12+1
  11. 300  MIN=(HR+RND*11 MOD 11)MOD 12+1
  12. 310  '
  13. 320  'DRAW GRAPHICS
  14. 330  '
  15. 340  CLS
  16. 350  CIRCLE (230, 100),2,3
  17. 360  CIRCLE (230,100),80,1
  18. 370  H=(15-HR)MOD 12
  19. 380  HANGLE!=H*-2*PI/12+(MIN+12*(MIN>6))*PI/72
  20. 390  IF HANGLE!>0 THEN HANGLE!=HANGLE!-2*PI
  21. 400  CIRCLE (230,100),50,1,HANGLE!+0.02,HANGLE!-0.02
  22. 410  M=(15-MIN)MOD 12
  23. 420  MANGLE!=M*-2*PI/12
  24. 430  CIRCLE (230,100),70,2,MANGLE!+0.02+2*PI*(M=0),MANGLE!-0.02
  25. 440  '
  26. 450  '   ***PRINT TITLE OF PROGRAM AND NUMBERS ON FACE***
  27. 460  '
  28. 470  LOCATE 2,17:PRINT "TELLTIME"
  29. 480  LOCATE 4,29:PRINT "12"
  30. 490  LOCATE 5,24:PRINT "11":LOCATE 5,35:PRINT "1"
  31. 500  LOCATE 9,19:PRINT "10":LOCATE 9,39:PRINT "2"
  32. 510  LOCATE 13,19:PRINT "9":LOCATE 13,40:PRINT "3"
  33. 520  LOCATE 17,20:PRINT "8":LOCATE 17,39:PRINT "4"
  34. 530  LOCATE 21,24:PRINT "7":LOCATE 21,35:PRINT "5"
  35. 540  LOCATE 22,30:PRINT "6"
  36. 550  '
  37. 560  '  *** RANDOMLY ARRANGES THE TIME CHOISES ***
  38. 570  '
  39. 580  C=RND*3 MOD 3+1
  40. 590  CH(C)=HR
  41. 600  CM(C)=MIN
  42. 610  D=(C+RND*2 MOD 2)MOD 3+1
  43. 620  CH(D)=MIN
  44. 630  CM(D)=HR
  45. 640  E=6-C-D
  46. 650  CH(E)=HR
  47. 660  CM(E)=12-MIN
  48. 670  IF CM(E) MOD 6=0 THEN CM(E)=CM(E)+6
  49. 680  '
  50. 690  '  *** PRINT THREE POSSIBLE ANSWERS ***
  51. 700  '
  52. 710  LOCATE 6,1:PRINT "WHAT TIME IS IT?"
  53. 720  FOR J=1 TO 3
  54. 730  LOCATE J*4+6,1
  55. 740  PRINT "("CHR$(64+J)")";
  56. 750  GOSUB 1270
  57. 760  NEXT
  58. 770  LOCATE 24,4:PRINT "HIT KEY A,B, OR C.  (X TO STOP);
  59. 780  RESP$=INKEY$:IF RESP$="" THEN 790 ELSE 800
  60. 790  FOR A=1 TO 300:NEXT:SOUND 18000,0.03:GOTO 780
  61. 800  LOCATE 24,1:PRINT SPC(39);
  62. 810  ANS=(ASC(RESP$) OR 32)-96
  63. 820  IF ANS=24 THEN 1410
  64. 830  IF ANS>0 AND ANS<4 THEN 950
  65. 840  '
  66. 850  '   *** UNACCEPTABLE INPUT REJECTED ***
  67. 860  '
  68. 870  LOCATE 24,1:PRINT "     A,B, OR C PLEASE";
  69. 880  FOR J=1 TO 6
  70. 890  SOUND 50*(J MOD 2+1),5
  71. 900  NEXT
  72. 910  GOTO 770
  73. 920  '
  74. 930  '   *** ACCEPTABLE INPUT, DRAW EYES AND MOUTH ***
  75. 940  '
  76. 950  CIRCLE (200,85),20,1-(ANS<>C),3*PI/8,5*PI/8
  77. 960  CIRCLE (260,85),20,1-(ANS<>C),3*PI/8,5*PI/8
  78. 970  IF ANS=C THEN 1120
  79. 980  '
  80. 990  '   *** WRONG ANSWER ROUTINE ***
  81. 1000  '
  82. 1010  SOUND 40,40
  83. 1020  CIRCLE (230,200),80,1,(3*PI/8),(5*PI/8)
  84. 1030  LOCATE 22,1:PRINT SPC(6)CHR$(ANS+64);" IS WRONG"
  85. 1040  PRINT "THE CORRECT ANSWER IS ";CHR$(64+C);"            ";
  86. 1050  FOR J=1 TO 4000
  87. 1060  NEXT
  88. 1070  NUMWRONG=NUMWRONG+1
  89. 1080  GOTO 290
  90. 1090  '
  91. 1100  '   *** RIGHT ANSWER ROUTINE ***
  92. 1110  '
  93. 1120  LOCATE 24,1
  94. 1130  J=0
  95. 1140  FLG=0
  96. 1150  PRINT "CORRECT!!!!!!";
  97. 1160  CIRCLE (230,100),50,2,(10*PI/8),(14*PI/8)
  98. 1170  FOR J=1000 TO 4000 STEP 80
  99. 1180  SOUND J, 0.04
  100. 1190  NEXT
  101. 1200  FOR J=1 TO 2000
  102. 1210  NEXT
  103. 1220  NUMRIGHT=NUMRIGHT+1
  104. 1230  GOTO 290
  105. 1240  '
  106. 1250  '   *** TIME PRINTING SUBROUTINE ***
  107. 1260  '
  108. 1270  IF CM(J)=12 THEN 1340
  109. 1280  IF CM(J)<7 THEN CM5(J)=CM(J):CONNECT$="AFTER " ELSE CM5(J)=12-CM(J):CONNECT$="TO"
  110. 1290  CM5$=STR$(CM5(J)*5)
  111. 1300  PRINT RIGHT$(CM5$,LEN(CM5$)+FLG);" minutes";
  112. 1310  IF NOT FLG THEN PRINT:PRINT SPC(5);
  113. 1320  PRINT CONNECT$;CH(J);
  114. 1330  GOTO 1350
  115. 1340  PRINT CH(J);"O'CLOCK ";      '2
  116. 1350  RETURN
  117. 1360  '
  118. 1370  '   *** ENDING PROGRAM ***
  119. 1380  '
  120. 1390  IF NUMRIGHT<NUMWRONG THEN 1410
  121. 1400  LOCATE 23,1:PRINT "VERY GOOD, YOU ANSWERED ":GOTO 1420
  122. 1410  IF NUMRIGHT<NUMWRONG THEN LOCATE 23,1:PRINT "TOO BAD, YOU ANSWERED ":GOTO 1420
  123. 1415  LOCATE 23,1:PRINT "VERY GOOD, YOU ANSWERED              "
  124. 1420  PRINT NUMRIGHT;"RIGHT AND ";NUMWRONG; "WRONG.";
  125. 1430  LOCATE 1,1
  126. 1440  END
  127.